/**
 * 球馆配置使用示例
 * 展示如何在组件中使用球馆配置文件获取经纬度和详细地址信息
 */

// 引入球馆配置工具
const venueConfig = require('./venueConfig.js');

// 示例1：根据球馆ID获取完整信息
function exampleGetVenueById() {
  const venueId = 1; // 库卡网球
  const venue = venueConfig.getVenueById(venueId);
  
  if (venue) {
    console.log('球馆信息:', venue);
    console.log('球馆名称:', venue.name);
    console.log('详细地址:', venue.address);
    console.log('经纬度:', venue.latitude, venue.longitude);
    
    // 新增：获取所有地址（多地址支持）
    const allAddresses = venueConfig.getVenueAllAddresses(venueId);
    console.log('所有地址:', allAddresses);
    
    // 新增：获取主要位置名称
    const location = venueConfig.getVenueLocation(venueId);
    console.log('主要位置名称:', location);
  } else {
    console.log('未找到ID为', venueId, '的球馆');
  }
}

// 示例2：根据球馆名称获取信息
function exampleGetVenueByName() {
  const venueName = '库卡网球';
  const venue = venueConfig.getVenueByName(venueName);
  
  if (venue) {
    console.log('找到球馆:', venue.name);
    console.log('联系电话:', venue.phone);
    console.log('位置:', venue.location);
  } else {
    console.log('未找到名称为', venueName, '的球馆');
  }
}

// 示例3：获取所有球馆列表
function exampleGetAllVenues() {
  const allVenues = venueConfig.getAllVenues();
  console.log('所有球馆数量:', allVenues.length);
  
  allVenues.forEach((venue, index) => {
    console.log(`${index + 1}. ${venue.name} - ${venue.location}`);
  });
}

// 示例4：获取球馆经纬度信息
function exampleGetVenueCoordinates() {
  const venueId = 2; // 向阳彩鸿湾
  const coordinates = venueConfig.getVenueCoordinates(venueId);
  
  if (coordinates) {
    console.log('经纬度信息:', coordinates);
    console.log('纬度:', coordinates.latitude);
    console.log('经度:', coordinates.longitude);
    
    // 新增：根据索引获取特定地址的经纬度
    const coordinatesByIndex = venueConfig.getVenueCoordinatesByIndex(venueId, 0);
    console.log('第一个地址的经纬度:', coordinatesByIndex);
    
    // 在地图中使用的示例
    // uni.openLocation({
    //   latitude: coordinates.latitude,
    //   longitude: coordinates.longitude,
    //   name: venueConfig.getVenueById(venueId).name,
    //   address: venueConfig.getVenueAddress(venueId)
    // });
  } else {
    console.log('未找到ID为', venueId, '的球馆经纬度信息');
  }
}

// 示例5：获取球馆详细地址
function exampleGetVenueAddress() {
  const venueId = 3; // 向阳康帝校区
  const address = venueConfig.getVenueAddress(venueId);
  
  if (address) {
    console.log('详细地址:', address);
    
    // 新增：获取所有地址（多地址支持）
    const allAddresses = venueConfig.getVenueAllAddresses(venueId);
    console.log('所有地址:', allAddresses);
    
    // 新增：根据索引获取特定地址
    const addressByIndex = venueConfig.getVenueAddressByIndex(venueId, 1);
    console.log('第二个地址:', addressByIndex);
    
    // 在导航中使用的示例
    // uni.openLocation({
    //   latitude: venueConfig.getVenueCoordinates(venueId).latitude,
    //   longitude: venueConfig.getVenueCoordinates(venueId).longitude,
    //   address: address
    // });
  } else {
    console.log('未找到ID为', venueId, '的球馆地址信息');
  }
}

// 示例6：获取球馆基本信息
function exampleGetVenueBasicInfo() {
  const venueId = 4; // 向阳雅园校区
  const basicInfo = venueConfig.getVenueBasicInfo(venueId);
  
  if (basicInfo) {
    console.log('基本信息:', basicInfo);
    console.log('名称:', basicInfo.name);
    console.log('位置:', basicInfo.location);
    console.log('电话:', basicInfo.phone);
    console.log('描述:', basicInfo.description);
  } else {
    console.log('未找到ID为', venueId, '的球馆基本信息');
  }
}

// 示例7：搜索球馆
function exampleSearchVenues() {
  const keyword = '网球';
  const searchResults = venueConfig.searchVenues(keyword);
  
  console.log('搜索"', keyword, '"的结果:', searchResults.length, '个');
  
  searchResults.forEach((venue, index) => {
    console.log(`${index + 1}. ${venue.name} - ${venue.location}`);
  });
}

// 示例8：获取配置信息
function exampleGetConfigInfo() {
  const configInfo = venueConfig.getConfigInfo();
  console.log('配置版本:', configInfo.version);
  console.log('最后更新时间:', configInfo.lastUpdated);
}

// 在Vue组件中的使用示例
function exampleVueComponentUsage() {
  /*
  // 在Vue组件中的使用示例（支持多地址）
  <template>
    <view>
      <view v-for="venue in venues" :key="venue.id">
        <text>{{ venue.name }}</text>
        <text>{{ venue.location }}</text>
        <button @click="openNavigation(venue)">导航</button>
      </view>
    </view>
  </template>
  
  <script>
  import { 
    getVenueByName, 
    getVenueCoordinates, 
    getVenueAddress,
    getVenueAllAddresses,
    getVenueLocation
  } from '../common/venueConfig.js';
  
  export default {
    methods: {
      // 打开导航（支持多地址选择）
      openNavigation(venue) {
        const venueConfig = getVenueByName(venue.name);
        
        if (venueConfig) {
          // 获取所有地址（多地址支持）
          const allAddresses = getVenueAllAddresses(venueConfig.id);
          
          if (allAddresses.length > 1) {
            // 如果有多个地址，显示地址选择弹窗
            this.showAddressSelectionModal(venueConfig, allAddresses);
          } else {
            // 如果只有一个地址，直接导航
            this.navigateToAddress(venueConfig, allAddresses[0]);
          }
        } else {
          uni.showToast({
            title: '球馆信息未找到',
            icon: 'none'
          });
        }
      },
      
      // 显示地址选择弹窗
      showAddressSelectionModal(venueConfig, addresses) {
        // 这里可以显示一个弹窗让用户选择地址
        console.log('请选择地址:', addresses);
        // 实际项目中，这里会显示一个模态框
      },
      
      // 导航到指定地址
      navigateToAddress(venueConfig, address) {
        uni.openLocation({
          latitude: address.latitude,
          longitude: address.longitude,
          name: venueConfig.name,
          address: address.address,
          success: () => {
            console.log('导航成功');
          },
          fail: (err) => {
            console.error('导航失败', err);
            uni.showToast({
              title: '导航失败',
              icon: 'none'
            });
          }
        });
      }
    }
  }
  </script>
  */
}

// 运行所有示例
function runAllExamples() {
  console.log('=== 球馆配置使用示例 ===');
  
  console.log('\n1. 根据ID获取球馆信息:');
  exampleGetVenueById();
  
  console.log('\n2. 根据名称获取球馆信息:');
  exampleGetVenueByName();
  
  console.log('\n3. 获取所有球馆列表:');
  exampleGetAllVenues();
  
  console.log('\n4. 获取球馆经纬度信息:');
  exampleGetVenueCoordinates();
  
  console.log('\n5. 获取球馆详细地址:');
  exampleGetVenueAddress();
  
  console.log('\n6. 获取球馆基本信息:');
  exampleGetVenueBasicInfo();
  
  console.log('\n7. 搜索球馆:');
  exampleSearchVenues();
  
  console.log('\n8. 获取配置信息:');
  exampleGetConfigInfo();
  
  console.log('\n=== 示例运行完成 ===');
}

// 如果直接运行此文件，则执行所有示例
if (require.main === module) {
  runAllExamples();
}

module.exports = {
  exampleGetVenueById,
  exampleGetVenueByName,
  exampleGetAllVenues,
  exampleGetVenueCoordinates,
  exampleGetVenueAddress,
  exampleGetVenueBasicInfo,
  exampleSearchVenues,
  exampleGetConfigInfo,
  exampleVueComponentUsage,
  runAllExamples
};